home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 49
/
Aminet 49 (2002)(GTI - Schatztruhe)[!][Jun 2002].iso
/
Aminet
/
util
/
boot
/
Bekuna.lha
/
bekuna1.5
/
BEKUNA.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
2002-03-24
|
59KB
|
2,239 lines
/* BEGRÜßUNG-BEKUNA */
/* Geschrieben von Kuno Naumann am 06.02.2002 */
v='$VER: BEKUNA.rexx V1.5 (24.03.2002) von Kuno Naumann'
vers=right(v,(length(v)-lastpos("V",v))+1)
/*--------Benutzer-Einstellung-----------*/
hilfean=1 /*Sprechblasenhilfe (1=An / 0=Aus)*/
blaverz=2 /*Sprechblasenverzögerung (in ganzen Sekunden)*/
bigro=30 /*Hintergrund-Bildausschnittgröße (in Bildpunkten)*/
topaz=0 /*Vorgabe-FONT (0=Times & Courier / 1=Topaz/8)*/
/*---Nur Ändern bei Verwendung anderer Mondgrafiken---*/
brate=17 /*Anzahl der Mondbilder (Bilder pro Streifen)*/
mogrb=40 /*Breite der einzelnen Mondbilder (in Bildpunkten)*/
mogrh=40 /*Höhe der einzelnen Mondbilder (in Bildpunkten)*/
/*---------Ab hier nicht ändern!----------*/
zeizo=-1 /*Zeitzone*/
if 0 then say trace('results')
if show('P','BEKUNA') then do
address BEKUNA 'front'
exit
end
signal on break_e
signal on syntax
signal on error
signal on halt
signal on ioerr
if ~show('L','rexxtricks.library') then
if ~addlib('rexxtricks.library',0,-30,38) then exit
if ~show('L','rexxmathlib.library') then
if ~addlib('rexxmathlib.library',0,-30,38) then exit
OPTIONS RESULTS
ADDRESS COMMAND
call pragma('d','rexx:')
call pragma("stack",8192)
/* Sommerzeit laden */
s=0 ; som="Winterzeit"
y=getenv('summertime')
if y="" then do
jn=frage("Haben wir jetzt Sommerzeit?")
if jn=1 then y="YES"
else y="NO"
call open(1,'Envarc:summertime','W')
call writeln(1,y)
call close(1)
call setenv('summertime',y)
end
if y='YES' then do
s=1 ; som='Sommerzeit'
end
call feiertage()
call holedaten()
call auswertung()
/*Mondphase*/
prozm=mond(date('I'),time(),zeizo-s)
parse var prozm mopha ri
mop=round(mopha,0)
if ri=1
then zuab='Zunehmend'
else zuab='Abnehmend'
if mopha>98 then zuab='Vollmond'
if mopha<2 then zuab='Neumond'
mori=ri
/*Datum/Zeit*/
dat=datumd('L')
zei=time('N')
call bildegui()
soundgg=""
if ont.1 then do
call soundplay(tond.1)
call pause(1)
end
tickz=0 ; cygz=1 ; cyez=1 ; cyfz=1
call tonmeldung()
textcyc=varicyc
blv=0
do while ~eof(ca1)
call topipe('tick 100')
in=readln(ca1)
parse var in in1 in2 in3 in4 .
if blv>0 then do
blv=blv-1
if blv=0 then do
bla=bln
call topipe('bubble top 'bly' left 'blx' gt "'hilfe.bln'"')
end
end
if in1='help' & hilfean=1 then call blase(in2)
if in1='active' then call blase(0)
if in1='gadget' then call objekt1()
if in1='menu' then call menue()
if in1='close' then call fensterzu()
if in1='arexx' then call abefehl()
if in1='tick' then call zeit()
end
call close(ca1)
exit
/*--------- Objekt1 -----------*/
objekt1:
if gz>1 then
if in2=gcgg then do
cnr=in3+1
call topipe('id 'gzgg' gt="'geb.cnr'"')
textcyc=0
end
if ez>1 then
if in2=ecgg then do
cnr=in3+1
call topipe('id 'ezgg' gt="'ereig.cnr'"')
textcyc=0
end
if fz>1 then
if in2=fcgg then do
cnr=in3+1
call topipe('id 'fzgg' gt="'feier.cnr'"')
textcyc=0
end
if in2=swkgg then call kalender(0,,,,hbf.5)
if in2=swegg then call eingabe(2)
if in2=swfgg then do
in1='menu'
in2=1 ; in3=0
end
if in2=swagg then do
in1='menu'
in2=1 ; in3=4
end
return
/*--------- Menü -----------*/
menue:
if in2=0 then do
if in3=0 then call showtx(2000,"Info","Vorletzter Systemstart war am:*n"datumd('L',word(leda,1))" | "word(leda,2),1,hbf.4)
if in3=1 then call einstell()
if in3=2 then call fensterpos(1,1,1,2)
if in3=3 then call fensterpos(1,0,1,0)
if in3=5 then call showtx(2000,"Über","Begrüßungsprogramm*nBEKUNA.rexx*n"vers"*nEMail: *nkuno-n@freenet.de",1,hbf.4)
if in3=6 then signal fensterzu
end
if in2=1 then do
/*Feiertage dieses Jahr zeigen*/
if in3=0 then do
call showtx(0,"Bitte Warten!","Feiertagsliste wird erstellt",0,hbf.4)
jahr=left(date('S'),4)
do i=1 to feierlist.0
y=feierlist.i
parse var y it "|" tx "|" fei
select
when fei=1 then fei=" Ja "
when fei>1 then fei=" Ja - nicht überall"
otherwise fei=" "
end
anzlist.i=datumd('W',it)"|"datumd('K',it)"|"tx"|"fei
end
anzlist.0=feierlist.0
call listanz("Feier- und Gedenktage "jahr,"Wochentag|Datum|Ereignis|gesetzl. Feiertag","anzlist",winpos.5,in3,hbf.2)
end
/*Feiertage nächstes Jahr zeigen*/
if in3=1 then do
call showtx(0,"Bitte Warten!","Feiertagsliste wird erstellt",0,hbf.4)
/*berechnen und speichern*/
y=0
xj=left(date('S'),4)+1
if exists('Daten/FeiertageNJ') then do
call open(3,'Daten/FeiertageNJ','R')
y=readln(3)
call close(3)
end
if y~=xj then do
call open(3,'Daten/FeiertageNJ','W')
call writeln(3,xj)
call feiernj()
end
/*laden und sortieren*/
call open(3,'Daten/FeiertageNJ','R')
jahr=readln(3)
do z=1
y=readln(3)
if eof(3) then leave
feierlistnj.z=y
end
call close(3)
feierlistnj.0=z-1
call qsort('feierlistnj',,'NUM',1,'|')
/*Datum ermitteln und anzeigen*/
do i=1 to feierlistnj.0
y=feierlistnj.i
parse var y it "|" tx "|" fei
select
when fei=1 then fei=" Ja "
when fei>1 then fei=" Ja - nicht überall"
otherwise fei=" "
end
anzlist.i=datumd('W',it)"|"datumd('K',it)"|"tx"|"fei
end
anzlist.0=feierlistnj.0
call listanz("Feier- und Gedenktage "jahr,"Wochentag|Datum|Ereignis|gesetzl. Feiertag","anzlist",winpos.6,in3,hbf.2)
end
/*Geburtstage zeigen*/
if in3=2 then do
z=0
do i=1 to meli1.0
parse var diffli1.i . '|' nr '|' .
if nr<=mlg then do
parse var meli1.nr tx'|'da
parse var da t'.'m'.'j
a=xj-j
if date('I',xj||m||t,'S')>xi then a=a-1
z=z+1
anzlist.z=tx'|'wochentag(da) da'|'a'|'sternzeichen(t,m)
end
end
anzlist.0=z
call listanz("Geburtstage","Vorname|Geburtsdatum|Alter|Sternzeichen","anzlist",winpos.7,in3,hbf.2)
end
/*verg. Ereignisse zeigen*/
if in3=3 then do
z=0
do i=1 to meli1.0
parse var diffli1.i . '|' nr '|' .
if nr>mlg then do
parse var meli1.nr tx'|'da
z=z+1
anzlist.z=tx'|'wochentag(da) da
end
end
anzlist.0=z
call listanz("vergangene Ereignisse","Ereignis|Datum","anzlist",winpos.8,in3,hbf.2)
end
/*komm. Ereignisse zeigen*/
if in3=4 then do
do i=1 to meli3.0
parse var diffli2.i . '|' nr '|' .
parse var meli3.nr tx'|'da
parse var da t'.'m'.'j
dd=tx'|'datumd('M',t,m,j)
if symbol('lzle.nr')="VAR" then anzlist.i="X|"dd
else anzlist.i=" |"dd
end
anzlist.0=i-1
call listanz("kommende Ereignisse","Abg.|Ereignis|Datum","anzlist",winpos.9,in3,hbf.2)
end
/*wiederk. Ereignisse zeigen*/
if in3=5 then do
do i=1 to meli4.0
parse var meli4.i tx'|'da'|'da2'|'inn
parse var da t'.'m'.'j
da=datumd('M',t,m,j)
if length(da2)=10 then do
parse var da2 t'.'m'.'j
da2=datumd('M',t,m,j)
end
if inn=0 then tinn="Ausgeschaltet"
if inn>0 & inn<6 then tinn="Jeder "inn+1". Tag"
if inn=6 then tinn="Jede Woche"
if inn>6 & inn<10 then tinn="Jede "inn-5". Woche"
if inn=10 then tinn="Jeden Monat"
if inn>10 & inn<13 then tinn="Jeder "inn-9". Monat"
if inn=13 then tinn="Jeder 6. Monat"
if inn=14 then tinn="Jedes Jahr"
anzlist.i=tx'|'da'|'da2'|'tinn
end
anzlist.0=i-1
call listanz("wiederkehrende Ereignisse","Ereignis|Ab Datum|Bis Datum|Intervall","anzlist",winpos.12,7,hbf.2)
end
end
/*Eingabe*/
if in2=2 then call eingabe(in3)
return
/*------- Zeit --------*/
zeit:
zei=time('N')
call topipe('id 'zeigg' gt "'zei' Uhr"')
if textcyc~=1 then return
tickz=tickz+1
if tickz=3 then tickz=0
if gz>1 & tickz=0 then do
cygz=cygz+1
if cygz>gz then cygz=1
call topipe('id 'gcgg' s='cygz-1)
call topipe('id 'gzgg' gt="'geb.cygz'"')
if variton then do
if symbol('tmeld.1')='VAR' & grug.cygz=0 & ont.3 then call soundplay(tond.3)
if symbol('tmeld.2')='VAR' & grug.cygz=1 & ont.4 then call soundplay(tond.4)
if symbol('tmeld.3')='VAR' & grug.cygz=2 & ont.5 then call soundplay(tond.5)
end
end
if ez>1 & tickz=1 then do
cyez=cyez+1
if cyez>ez then cyez=1
call topipe('id 'ecgg' s='cyez-1)
call topipe('id 'ezgg' gt="'ereig.cyez'"')
if variton then do
if symbol('tmeld.4')='VAR' & ont.6 then call soundplay(tond.6)
end
end
if fz>1 & tickz=2 then do
cyfz=cyfz+1
if cyfz>fz then cyfz=1
call topipe('id 'fcgg' s='cyfz-1)
call topipe('id 'fzgg' gt="'feier.cyfz'"')
if variton then do
if symbol('tmeld.5')='VAR' & gruf.cyfz=0 & ont.7 then call soundplay(tond.7)
if symbol('tmeld.6')='VAR' & gruf.cyfz=1 & ont.8 then call soundplay(tond.8)
end
end
return
/*-------- Arexxbefehl ---------*/
abefehl:
rxcmd=readch(ca1,in3)
if in2>1 then call topipe("rc 10")
/*Befehl-front*/
if in2=0 then do
call topipe('rc 0 result "Fenster nach vorn geholt"')
call topipe('id 0 s 67')
end
/*Befehl-quit*/
if in2=1 then do
call topipe('rc 0 result "Bekuna beendet"')
signal fensterzu
end
return
/*-------- Schließen ---------*/
fensterzu:
if ont.2 then do
call soundplay(tond.2)
call pause(1)
end
call close(ca1)
call programm()
call remlib('rexxmathlib.library')
call remlib('rexxtricks.library')
exit
return
/* ************** UNTERPROGRAMME ***************** */
holedaten:
/*-----Vorgaben-----*/
varicyc=1 ; variton=1 ; ablo=1 ; mogra=1 ; progs=0
gv=14 ; vv=9 ; kv=8 ; fv=8 ; dv=5 ; froh=1
do i=1 to 8
ont.i=0 ; tond.i=""
if i<8 then do
onp.i=0 ; prod.i=""
end
if i<7 then do
tmv.i=0 ; pmv.i=0
end
end
hgd.0=5 ; std.0=5 ; zsb.0=6
tmv.0=6 ; ont.0=8 ; tond.0=8
pmv.0=6 ; onp.0=7 ; prod.0=7
keine="Zur Zeit sind keine Ereignisse."
keined="Es sind keine Daten vorhanden."
hgpfad="Sys:Prefs/Presets/Patterns/Einfarbig/"
wa="gelb grün hellblau orange hellrot"
wb="1 0 0 0 0"
if topaz then
do i=1 to 6
zsb.i='gt="topaz.font" defn=8 s=0'
end
else do
zsb.1='gt="times.font" defn=18 s=0'
zsb.2='gt="times.font" defn=18 s=0'
zsb.3='gt="times.font" defn=15 s=0'
zsb.4='gt="times.font" defn=18 s=0'
zsb.5='gt="courier.font" defn=13 s=0'
zsb.6='gt="courier.font" defn=13 s=0'
end
mogdz="Rexx:Daten/MondanimZ"
mogda="Rexx:Daten/MondanimA"
vorgx="0 1 2 3 4 5 6 7 14 21 30 61 91 183 365"
vorgt="0 -1 1 2 3 4 5 6 7 14 21 30"
vorgp="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14"
/*-----Einstellungen laden-----*/
if open(9,'Daten/Einstellungen','R') then do
do i=1 to hgd.0
hgd.i=readln(9)
std.i=readln(9)
if ~exists(hgd.i) then std.i=1
if std.i then hbf.i=""
else hbf.i='bf="'hgd.i'"'
end
do i=1 to 2
y=readln(9)
end
if eof(9) then break
do i=1 to zsb.0
y=readln(9)
if index(y,'.font')>0 then zsb.i=y
end
if eof(9) then break
do i=1 to 2
y=readln(9)
end
if eof(9) then break
do i=1 to ont.0
y=readln(9)
parse var y ont.i" "tond.i
if ~exists(tond.i) then ont.i=0
end
do i=1 to 2
y=readln(9)
end
do i=1 to onp.0
y=readln(9)
parse var y onp.i" "prod.i
if ~exists(prod.i) then onp.i=0
end
do i=1 to 3
y=readln(9)
end
y=readln(9)
if words(y)=5 then
parse var y gv vv kv fv dv .
y=readln(9)
if words(y)=tmv.0 then
do i=1 to tmv.0
tmv.i=word(y,i)
end
y=readln(9)
if words(y)=pmv.0 then
do i=1 to pmv.0
pmv.i=word(y,i)
end
progs=readln(9)
ablo=readln(9)
varicyc=readln(9)
toncyc=readln(9)
mogra=readln(9)
call close(9)
end
else
do i=1 to hgd.0
hgd.i=hgpfad||word(wa,i)
std.i=word(wb,i)
if ~exists(hgd.i) then std.i=1
if std.i then hbf.i=""
else hbf.i='bf="'hgd.i'"'
end
gvor=word(vorgx,gv+1)
vvor=word(vorgx,vv+1)
kvor=word(vorgx,kv+1)
fvor=word(vorgx,fv+1)
dvor=word(vorgx,dv+1)
do i=1 to tmv.0
tvor.i=word(vorgt,tmv.i+1)
end
do i=1 to pmv.0
pvor.i=word(vorgp,pmv.i+1)
end
if tvor.1<0 then tvor.1=gvor
if tvor.2<0 then tvor.2=gvor
if tvor.3<0 then tvor.3=vvor
if tvor.4<0 then tvor.4=kvor
if tvor.5<0 then tvor.5=fvor
if tvor.6<0 then tvor.6=dvor
/*Letzte Nutzung laden*/
leda=getenv('lastboot')
if length(leda)=0 then do
leda=date('I') time()
call setenv('lastboot',leda)
end
call open(8,'envarc:lastboot','W')
call writeln(8,date('I') time())
call close(8)
/*Fensterposition laden*/
winpos.0=12
do i=1 to 12
winpos.i="cs"
end
if readfile('daten/Fpos','winpos') then
do i=1 to winpos.0
parse var winpos.i lp tp wp hp op
select
when op=0 then winpos.i='cs width='wp 'height='hp
when op=1 then winpos.i='left='lp 'top='tp 'width='wp 'height='hp
when op=2 then winpos.i='left='lp 'top='tp
otherwise winpos.i='cs'
end
end
call ladedaten()
/*-----Feiertage laden-----*/
call open(3,'Daten/Feiertage','R')
jahr=readln(3)
do z=1
y=readln(3)
if eof(3) then leave
feierlist.z=y
end
call close(3)
feierlist.0=z-1
call qsort('feierlist',,'NUM',1,'|')
return
/*-----Geburtstage laden-----*/
ladedaten:
if ~open(2,'Daten/Gebdaten','R') then do
ename="User"
meli1.0=0
mlg=0
end
else do
do z=1
y=readln(2)
if eof(2) then leave
if z=1 then parse var y ename "|" .
meli1.z=y
end
call close(2)
mlg=z-1
end
/*-----Ereignisse laden-----*/
parse value datumd('D') with xt xm xj . xi
if ~ readfile('Daten/Ereignisdaten1','meli2') then meli2.0=0
if meli2.0>0 then
do i=1 to meli2.0
z=mlg+i
meli1.z=meli2.i
end
meli1.0=mlg+meli2.0
if ~ readfile('Daten/Ereignisdaten3','meli4') then meli4.0=0
call wiederaus()
if ~ readfile('Daten/Ereignisdaten2','meli3') then meli3.0=0
return
/*------------AUSWERTUNG--------------*/
auswertung:
/*-----Begrüßungstext-----*/
st=left(time('N'),2)
if st>=0 & st<=2 then beg=ename", was machst du so spät noch mit mir? Geh' lieber ins Bett !!!"
if st>2 & st<=4 then beg=ename", so früh am Computer? Geh' lieber ins Bett!"
if st>4 & st<=6 then beg="Guten Morgen," ename"! Schon so früh auf?"
if st>6 & st<=10 then beg="Guten Morgen," ename"! Viel Spaß mit mir!"
if st>10 & st<=17 then beg="Guten Tag," ename"! Viel Spaß mit mir!"
if st>17 & st<=21 then beg="Guten Abend," ename"! Viel Spaß mit mir!"
if st>21 & st<24 then beg="Gute Nacht," ename"! Jetzt aber ab ins Bett!"
if st>=0 & st<5 then froh=0
/*-----Aktuelles Sternzeichen-----*/
stern=sternzeichen(xt,xm)
/*-----Begrüßungstext2-----*/
ledd=xi-word(leda,1)
if ledd>1 then do
froh=0
beg1="Du hast mich schon "ledd" Tage nicht mehr eingeschaltet!"
beg2=ename", Du vernachlässigst mich!"
if ledd>5 then beg2=ename", meine Platinen rosten!"
if ledd>10 then beg2=ename", hast Du etwa eine andere Freundin?"
end
/*-----Nächster Geburtstag oder verg. Ereignis-----*/
zd=0
do i=1 to meli1.0
parse var meli1.i n '|' t '.' m '.' j
dd=date('I',xj||m||t,'S')
diffli1.i=dd-xi'|'i'|'n'|'xj-j
end
z=meli1.0
do i=1 to meli1.0
parse var meli1.i n '|' t '.' m '.' j
dd=date('I',xj+1||m||t,'S')
zd=z+i
diffli1.zd=dd-xi'|'i'|'n'|'xj+1-j
end
diffli1.0=zd
call qsort('diffli1',,'NUM',1,'|')
gz=0
do i=1 to diffli1.0
parse var diffli1.i dft '|' dfi '|' dfn '|' dfa
if dft>=0 then do
if dft<=tvor.1 & dfi=1 then tmeld.1=1
if dft<=tvor.2 & dfi>1 then tmeld.2=1
if dft<=tvor.3 & dfi>mlg then tmeld.3=1
if dft<=pvor.1 & dfi=1 then pmeld.1=1
if dft<=pvor.2 & dfi>1 then pmeld.2=1
if dft<=pvor.3 & dfi>mlg then pmeld.3=1
end
if dft>=0 & dft<=gvor then do
mwt=left(datumd('W',xi+dft),2)
if dfi=1 then do
gz=gz+1
grug.gz=0
if dft>1 then geb.gz=ename", in" dft "Tagen ("mwt") ist Dein" dfa". Geburtstag!"
if dft=1 then geb.gz=">>>" ename", Morgen ist Dein" dfa". Geburtstag! <<<"
if dft=0 then geb.gz=">>>" ename", Heute ist Dein" dfa". Geburtstag! <<<"
end
if dfi>1 & dfi<=mlg then do
gz=gz+1
grug.gz=1
if dft>1 then geb.gz="In" dft "Tagen ("mwt") ist der" dfa". Geburtstag von" dfn"!"
if dft=1 then geb.gz=">>> Morgen ist der" dfa". Geburtstag von" dfn"! <<<"
if dft=0 then geb.gz=">>> Heute ist der" dfa". Geburtstag von" dfn"! <<<"
end
end
if dft>=0 & dft<=vvor then do
mwt=left(datumd('W',xi+dft),2)
if dfi>mlg then do
gz=gz+1
grug.gz=2
if dft>1 then geb.gz=ename", in" dft "Tagen ("mwt") ist Dein" dfa"." dfn"!"
if dft=1 then geb.gz=">>>" ename", Morgen ist Dein" dfa"." dfn"! <<<"
if dft=0 then geb.gz=">>>" ename", Heute ist Dein" dfa"." dfn"! <<<"
end
end
end
/*-----kommendes Ereignis-----*/
do i=1 to meli3.0
parse var meli3.i n '|' t '.' m '.' j
dd=date('I',j||m||t,'S')
dta=dd-xi
if ablo & dta<0 then lzle.i=i
diffli2.i=dta'|'i'|'n
end
diffli2.0=meli3.0
call qsort('diffli2',,'NUM',1,'|')
ez=0
do i=1 to diffli2.0
parse var diffli2.i dft '|' . '|' dfn
if dft>=0 & dft<=tvor.4 then tmeld.4=1
if dft>=0 & dft<=pvor.4 then pmeld.4=1
if dft>=0 & dft<=kvor then do
mwt=left(datumd('W',xi+dft),2)
ez=ez+1
if dft>1 then ereig.ez="In" dft "Tagen ("mwt") ist "dfn"!"
if dft=1 then ereig.ez=">>> Morgen ist "dfn"! <<<"
if dft=0 then ereig.ez=">>> Heute ist "dfn"! <<<"
end
end
/*-----Feiertage-----*/
fz=0
do i=1 to feierlist.0
y=feierlist.i
parse var y dd"|"tx"|"fei
if tx="Sommerzeitanfang" then sza=dd
if tx="Winterzeitanfang" then wza=dd
dft=dd-xi
if dft>=0 & dft<=tvor.5 & fei>0 then tmeld.5=1
if dft>=0 & dft<=pvor.5 & fei>0 then pmeld.5=1
if dft>=0 & dft<=fvor & fei>0 then do
mwt=left(datumd('W',xi+dft),2)
fz=fz+1
gruf.fz=0
if dft>1 then feier.fz="In" dft "Tagen ("mwt") ist "tx"."
if dft=1 then feier.fz="Morgen ist "tx"."
if dft=0 then feier.fz="Heute ist "tx"."
feier.fz=feier.fz" «Gesetzlicher Feiertag!»"
if fei>1 then feier.fz=feier.fz" «Feiertag! (Nicht in allen Gebieten!)»"
if dft=0 then call kommentare()
end
if dft>=0 & dft<=tvor.6 & fei=0 then tmeld.6=1
if dft>=0 & dft<=pvor.6 & fei=0 then pmeld.6=1
if dft>=0 & dft<=dvor & fei=0 then do
mwt=left(datumd('W',xi+dft),2)
fz=fz+1
gruf.fz=1
if dft>1 then feier.fz="In" dft "Tagen ("mwt") ist "tx"."
if dft=1 then feier.fz="Morgen ist "tx"."
if dft=0 then feier.fz="Heute ist "tx"."
if dft=0 then call kommentare()
end
end
/*-----Sommerzeitumstellung-----*/
if (xi>=sza & xi<wza) & s=0 then do
call open(1,'envarc:summertime','W')
call writeln(1,"YES")
call close(1)
call setenv('summertime','YES')
s=1 ; som='Sommerzeit'
ns=left(time('N'),2)
ns=ns+1
if ns>23 then ns=0
ns=right('0'||ns,2)
DATE overlay(ns,time('N'))
if ns=0 then DATE morgen
SetClock SAVE
meld4=ename", ich habe meine Uhr auf Sommerzeit umgestellt."
tmeld.7=1
end
/*-----Winterzeitumstellung-----*/
if (xi<sza | xi>=wza) & s=1 then do
call open(1,'envarc:summertime','W')
call writeln(1,"NO")
call close(1)
call setenv('summertime','NO')
s=0 ; som="Winterzeit"
ns=left(time('N'),2)
ns=ns-1
if ns<0 then ns=23
ns=right('0'||ns,2)
DATE overlay(ns,time('N'))
if ns=23 then DATE gestern
SetClock SAVE
meld4=ename", ich habe meine Uhr auf Winterzeit umgestellt."
tmeld.7=1
end
return
/*==========Feiertagsliste erstellen==========*/
/*(nur zu Beginn eines neuen Jahres)*/
feiertage:
xj=left(date('S'),4)
if ~exists('Daten') then do
call showtx(1500,"Fehler!","Das Verzeichnis «REXX:Daten» existiert nicht!",1,hbf.4)
exit
end
if exists('Daten/Feiertage') then do
call open(3,'Daten/Feiertage','R')
y=readln(3)
call close(3)
if y=xj then return
end
call open(3,'Daten/Feiertage','W')
call writeln(3,xj)
feiernj:
/*-----Mondabhängige Feiertage-----*/
b=date('I',xj||0319,'S')
zu=0 ; a=0
do until a
b=b+1
prozm=mond(b,'12:00:00',zeizo-s)
parse var prozm mopha ri
if ri=1 then zu=1
if ri=0 & zu=1 then a=1
end
wn=word(datumd('D',b),4)
a=b+(7-wn)
if a=b then a=a+7
call writeln(3,a-48"|Rosenmontag|"0)
call writeln(3,a-47"|Fastnacht|"0)
call writeln(3,a-46"|Aschermittwoch|"0)
call writeln(3,a-7"|Palmsonntag|"0)
call writeln(3,a-3"|Gründonnerstag|"0)
call writeln(3,a-2"|Karfreitag|"1)
call writeln(3,a"|Ostersonntag|"1)
call writeln(3,a+1"|Ostermontag|"1)
call writeln(3,a+7"|Weißer Sonntag|"0)
call writeln(3,a+39"|Christi Himmelfahrt|"1)
call writeln(3,a+49"|Pfingstsonntag|"1)
call writeln(3,a+50"|Pfingstmontag|"1)
call writeln(3,a+56"|Dreifaltigkeitsfest|"0)
call writeln(3,a+60"|Fronleichnam|"2)
/*-----Wochentagabhängige Feiertage-----*/
b=a+49
dw=datumd('D',01,05,xj)
parse var dw . . . wn a
a=a+(7-wn)
if a+7~=b then a=a+7
call writeln(3,a"|Muttertag|"0)
dw=datumd('D',30,09,xj)
parse var dw . . . wn a
ma=a+(7-wn)
dw=datumd('D',01,10,xj)
parse var dw . . . wn a
a=a+(7-wn)
if ma=a then call writeln(3,a"|Erntedanktag|"0)
else do
call writeln(3,ma"|ev. Erntedanktag|"0)
call writeln(3,a"|kath. Erntedanktag|"0)
end
dw=datumd('D',31,03,xj)
parse var dw . . . wn a
if wn<7 then a=a-wn
call writeln(3,a"|Sommerzeitanfang|"0)
dw=datumd('D',31,10,xj)
parse var dw . . . wn a
if wn<7 then a=a-wn
call writeln(3,a"|Winterzeitanfang|"0)
dw=datumd('D',24,12,xj)
parse var dw . . . wn a
if wn<7 then a=a-wn
call writeln(3,a-35"|Volkstrauertag|"0)
call writeln(3,a-32"|Buß- und Bettag|"2)
call writeln(3,a-28"|Totensonntag|"0)
call writeln(3,a-21"|1. Advent|"0)
call writeln(3,a-14"|2. Advent|"0)
call writeln(3,a-7"|3. Advent|"0)
call writeln(3,a"|4. Advent|"0)
/*-----Feste Feiertage-----*/
call writeln(3,date('I',xj||0101,'S')"|Neujahr|"1)
call writeln(3,date('I',xj||0106,'S')"|Heilige Drei Könige|"2)
call writeln(3,date('I',xj||0202,'S')"|Mariä Lichtmeß|"0)
call writeln(3,date('I',xj||0214,'S')"|Valentinstag|"0)
call writeln(3,date('I',xj||0308,'S')"|Frauentag|"0)
call writeln(3,date('I',xj||0325,'S')"|Mariä Verkündung|"0)
call writeln(3,date('I',xj||0401,'S')"|1. April|"0)
call writeln(3,date('I',xj||0430,'S')"|Walpurgisnacht|"0)
call writeln(3,date('I',xj||0501,'S')"|Tag der Arbeit|"1)
call writeln(3,date('I',xj||0505,'S')"|Europatag|"0)
call writeln(3,date('I',xj||0511,'S')"|Beginn der Eisheiligen|"0)
call writeln(3,date('I',xj||0515,'S')"|Tag der Familie|"0)
call writeln(3,date('I',xj||0531,'S')"|Mariä Heimsuchung|"0)
call writeln(3,date('I',xj||0621,'S')"|Sommersonnenwende|"0)
call writeln(3,date('I',xj||0627,'S')"|Siebenschläfer|"0)
call writeln(3,date('I',xj||0723,'S')"|Beginn der Hundstage|"0)
call writeln(3,date('I',xj||0808,'S')"|Friedensfest|"0)
call writeln(3,date('I',xj||0815,'S')"|Mariä Himmelfahrt|"2)
call writeln(3,date('I',xj||0920,'S')"|Weltkindertag|"0)
call writeln(3,date('I',xj||0929,'S')"|Michaelistag|"0)
call writeln(3,date('I',xj||1003,'S')"|Tag der deutschen Einheit|"1)
call writeln(3,date('I',xj||1031,'S')"|Reformationstag|"2)
call writeln(3,date('I',xj||1031,'S')"|Halloween|"0)
call writeln(3,date('I',xj||1101,'S')"|Allerheiligen|"2)
call writeln(3,date('I',xj||1102,'S')"|Allerseelen|"0)
call writeln(3,date('I',xj||1111,'S')"|Martinstag|"0)
call writeln(3,date('I',xj||1206,'S')"|Nikolaus|"0)
call writeln(3,date('I',xj||1208,'S')"|Mariä Empfängnis|"0)
call writeln(3,date('I',xj||1221,'S')"|Wintersonnenwende|"0)
call writeln(3,date('I',xj||1224,'S')"|Heiliger Abend|"0)
call writeln(3,date('I',xj||1225,'S')"|1. Weihnachtstag|"1)
call writeln(3,date('I',xj||1226,'S')"|2. Weihnachtstag|"1)
call writeln(3,date('I',xj||1231,'S')"|Silvester|"0)
call close(3)
return
/*=====Kommentare=====*/
kommentare:
if tx="Neujahr" then meld2=ename", ich wünsche Dir ein frohes und gesundes neues Jahr."
if tx="Valentinstag" then meld2=ename", schenkst Du mir auch was?"
if tx="Rosenmontag" then meld1=ename", ich wünsche Dir eine schöne Faschingsfeier."
if tx="Fastnacht" then meld1=ename", ich wünsche Dir eine schöne Faschingsfeier."
if tx="Ostersonntag" then meld1="Frohe Ostern" ename"!"
if tx="Ostermontag" then meld1="Frohe Ostern" ename"!"
if tx="1. April" then meld2=ename", ich lösche jetzt Deine Festplatte!"
if tx="1. April" then meld3="APRIL, APRIL!!!"
if tx="Christi Himmelfahrt" then meld1=ename", ich wünsche Dir alles Gute zum Vatertag. Trink nicht zu viel!"
if tx="Tag der Arbeit" then meld2=ename", ich wünsche Dir einen schönen Maifeiertag."
if tx="Heiliger Abend" then meld2="Frohe Weihnachten" ename"!"
if tx="1. Weihnachtstag" then meld2=ename", ich wünsche Dir am 1. Weihnachtsfeiertag viel Spaß mit mir!"
if tx="2. Weihnachtstag" then meld2=ename", ich wünsche Dir am 2. Weihnachtsfeiertag viel Spaß mit mir!"
if tx="Silvester" then meld2=ename", ich wünsche Dir eine fröhliche Silvester-Party!"
return
/*Fensterposition speichern*/
fensterpos:
if ~ readfile('daten/Fpos','winpos') then
do i=1 to 12
winpos.i="-"
end
y=arg(1)
if arg(3) then y2=topipeo('id 0 read')
else y2=topipe2o('id 0 read')
if arg(2) then winpos.y=y2 arg(4)
else winpos.y="-"
winpos.0=12
call writefile('daten/Fpos','winpos')
do i=2 to winpos.0
if winpos.i="-" then winpos.i="cs"
else do
parse var winpos.i lp tp wp hp op
if op=0 then winpos.i='cs width='wp 'height='hp
if op=1 then winpos.i='left='lp 'top='tp 'width='wp 'height='hp
if op=2 then winpos.i='left='lp 'top='tp
end
end
return
/*=====================Eingabe===================*/
eingabe:
aw=arg(1)
drop kalgg kal2gg da2gg intgg
if aw=0 then call bildegui2("Geburtstage","Vorname|Geburtsdatum","meli1",mlg,2)
if aw=1 then call bildegui2("Vergangene Ereignisse","Ereignis|Datum","meli2",meli2.0,3)
if aw=2 then call bildegui2("Kommende Ereignisse","Ereignis|Datum","meli3",meli3.0,4)
if aw=3 then call bildegui2("Wiederkehrende Ereignisse","Ereignis|Ab Datum|Bis Datum|Intervall","meli4",meli4.0,11)
linr=0
do while ~eof(ca2)
call topipe2('continue')
ein=readln(ca2)
parse var ein ein1 ein2 ein3 ein4 ein5 .
parse var ein . . ein6
if ein1='gadget' then call objekt2()
if ein1='menu' then call menue2()
if ein1='close' then leave
end
call close(ca2)
return
/*------------------OBJEKT2-----------------*/
objekt2:
/*Auswahl*/
if ein2=bgg then do
linr=ein5-me0
liggnr=ein5
call topipe2('id 'lgg' dis 0 ref')
parse var li.linr tfeld"|"dfeld"|"d2feld"|"intnr
call sperr(0)
end
/*Hinzufügen*/
if ein2=ngg then do
linr=li.0+1
liggnr=me0+linr
call topipe2('id 'lgg' dis 1 ref')
tfeld="" ; dfeld="" ; d2feld="" ; intnr=-6
if aw>1 then dfeld=datumd('Z')
call sperr(0)
if aw=3 then li.linr=tfeld"|"dfeld"|"d2feld"|"intnr
else li.linr=tfeld"|"dfeld
call topipe2('id 'bgg' gt="'li.linr'" tar=-1 addn')
call topipe2('id 'bgg' s='liggnr' scr='liggnr)
li.0=linr
call topipe2('id 'vngg' s=0 ref')
end
/*Entfernen*/
if ein2=lgg & linr>0 & linr<=li.0 then do
tfeld="" ; dfeld="" ; d2feld=""
call sperr(1)
if li.0=1 then do
li.0=0
linr=0
end
if li.0>1 then call stemremove('li',linr,1)
call topipe2('id 'bgg' list 0')
call topipe2('id 'bgg' remn')
do i=1 to li.0
call topipe2('id 'bgg' gt="'li.i'" tar=-1 addn')
end
call topipe2('id 'bgg' list 1')
end
/*Textfeld*/
if ein2=vngg then do
mtfeld=tfeld
tfeld=strip(ein6)
y=pruef(tfeld,0)
if y=0 then do
tfeld=upper(left(tfeld,1))||right(tfeld,length(tfeld)-1)
call topipe2('id 'vngg' gt "'tfeld'" ref')
if aw=3 then do
if tfeld~=mtfeld then intnr=0-intnr
li.linr=tfeld"|"dfeld"|"d2feld"|"intnr
end
else li.linr=tfeld"|"dfeld
call topipe2('id 'liggnr' gt="'li.linr'" ')
call topipe2('id 'dagg' s=0 ref')
end
end
/*Datumfeld*/
if ein2=dagg then do
mdfeld=dfeld
dfeld=strip(ein6)
dfeld=pruef(dfeld,1)
if dfeld~=0 then do
if dfeld~=mdfeld then intnr=0-intnr
if aw=3 then li.linr=tfeld"|"dfeld"|"d2feld"|"intnr
else li.linr=tfeld"|"dfeld
call topipe2('id 'lgg' dis 1 ref')
call topipe2('id 'liggnr' gt="'li.linr'"')
call topipe2('id 'dagg' gt="'dfeld'"')
if aw=3 then call topipe2('id 'da2gg' s=0 ref')
end
end
/*Datumfeld2*/
if ein2=da2gg then do
md2feld=d2feld
d2feld=strip(ein6)
d2feld=pruef(d2feld,2)
if d2feld~=0 then do
if d2feld~=md2feld then intnr=0-intnr
if aw=3 then li.linr=tfeld"|"dfeld"|"d2feld"|"intnr
else li.linr=tfeld"|"dfeld
call topipe2('id 'lgg' dis 1 ref')
call topipe2('id 'liggnr' gt="'li.linr'"')
call topipe2('id 'da2gg' gt="'d2feld'"')
end
end
/*Kalender(K)*/
if ein2=kalgg then do
mdfeld=dfeld
if length(dfeld)<10 then dfeld=kalender(1,,ca2,dagg,hbf.5)
else dfeld=kalender(1,dfeld,ca2,dagg,hbf.5)
dfeld=pruef(dfeld,1)
if dfeld~=0 then do
if dfeld~=mdfeld then intnr=0-intnr
if aw=3 then li.linr=tfeld"|"dfeld"|"d2feld"|"intnr
else li.linr=tfeld"|"dfeld
call topipe2('id 'liggnr' gt="'li.linr'"')
end
end
/*Kalender(K)2*/
if ein2=kal2gg & aw=3 then do
md2feld=d2feld
if length(d2feld)<10 then d2feld=kalender(1,,ca2,da2gg,hbf.5)
else d2feld=kalender(1,d2feld,ca2,da2gg,hbf.5)
d2feld=pruef(d2feld,1)
if d2feld~=0 then do
if d2feld~=md2feld then intnr=0-intnr
li.linr=tfeld"|"dfeld"|"d2feld"|"intnr
call topipe2('id 'liggnr' gt="'li.linr'"')
end
end
/*Intervall*/
if ein2=intgg & aw=3 then do
intnr=0-ein3
li.linr=tfeld"|"dfeld"|"d2feld"|"intnr
call topipe2('id 'liggnr' gt="'li.linr'" ')
end
/*Speichern*/
if ein2=spgg then do
if aw=3 then
do i=1 to li.0
parse var li.i tfeld"|"dfeld"|"d2feld"|"intnr
if intnr<0 then do
if exists('daten/Ereignisdaten2') then call open(7,'daten/Ereignisdaten2','A')
else call open(7,'daten/Ereignisdaten2','W')
call writeln(7,tfeld"|"dfeld)
call close(7)
intnr=abs(intnr)
li.i=tfeld"|"dfeld"|"d2feld"|"intnr
end
end
if aw=0 then
if li.0>0 then call writefile('daten/Gebdaten','li')
else 'delete >nil: daten/Gebdaten'
if aw=1 then
if li.0>0 then call writefile('daten/Ereignisdaten1','li')
else 'delete >nil: daten/Ereignisdaten1'
if aw=2 then
if li.0>0 then call writefile('daten/Ereignisdaten2','li')
else 'delete >nil: daten/Ereignisdaten2'
if aw=3 then
if li.0>0 then call writefile('daten/Ereignisdaten3','li')
else 'delete >nil: daten/Ereignisdaten3'
textcyc=0 ; toncyc=0
call ladedaten()
call auswertung()
end
return
sperr:
u=arg(1)
call topipe2('id 'vngg' gt "'tfeld'" dis 'u' ref')
call topipe2('id 'dagg' gt "'dfeld'" dis 'u' ref')
if aw>=2 then call topipe2('id 'kalgg' dis 'u' ref')
if aw=3 then do
call topipe2('id 'da2gg' gt "'d2feld'" dis 'u' ref')
call topipe2('id 'kal2gg' dis 'u' ref')
call topipe2('id 'intgg' s 'abs(intnr)' dis 'u' ref')
end
return
pruef:
procedure expose aw xi hbf.4
pr=0 ; nd=0
if arg(2)=0 & length(arg(1))<2 then pr=1
if arg(2)=2 & length(arg(1))=0 then return ""
if arg(2)=1 then do
parse value arg(1) with t'.'m'.'j
t=right(0||t,2) ; m=right(0||m,2)
if (t<1 | t>31)|(m<1 | m>12)|(j<1900 | j>2100) then pr=2
if aw>=2 then if date('I',j||m||t,'S')<xi then pr=3
end
if pr=1 then call showtx(500,'FEHLER!','Falsche Texteingabe!',0,hbf.4)
if pr=2 then call showtx(1000,'FEHLER!','Falsche Datumseingabe!*nBeispiel: 01.03.1970 oder 1.3.1970',0,hbf.4)
if pr=3 then call showtx(500,'FEHLER!','Ungültiges Datum!',0,hbf.4)
if pr=0 then nd=t'.'m'.'j
if arg(2)=0 then nd=pr
return nd
/*--------- Menü2 -----------*/
menue2:
if ein2=0 then
select
when ein3=2 then call fensterpos(efpos,0,0,0)
when ein3=3 then ein1='close'
otherwise call fensterpos(efpos,1,0,ein3)
end
return
/*---Wiederkehr-Auswertung---*/
wiederaus:
do i=1 to meli4.0
parse var meli4.i tx'|'abda'|'bida'|'inn
parse var abda d1t'.'d1m'.'d1j
ei=date('I',d1j||d1m||d1t,'S')
if length(bida)=10 then do
parse var bida d2t'.'d2m'.'d2j
bi=date('I',d2j||d2m||d2t,'S')
end
else bi=99000
if (xi>ei & xi<=bi) & inn>0 then do
if inn<7 then ei=ei+inn+1
if inn>6 & inn<10 then ei=ei+(inn-5)*7
if inn>9 & inn<14 then do
if inn<13 then d1m=d1m+(inn-9)
else d1m=d1m+6
if d1m>12 then do
d1m=d1m-12 ; d1j=d1j+1
end
d1m=right(0||d1m,2)
ei=date('I',d1j||d1m||d1t,'S')
end
if inn=14 then do
d1j=d1j+1
ei=date('I',d1j||d1m||d1t,'S')
end
/*Eintragen*/
if ei<=bi then do
if exists('daten/Ereignisdaten2') then call open(7,'daten/Ereignisdaten2','A')
else call open(7,'daten/Ereignisdaten2','W')
call writeln(7,tx"|"datumd('Z',ei))
call close(7)
meli4.i=tx"|"datumd('Z',ei)"|"bida"|"inn
call writefile('daten/Ereignisdaten3','meli4')
end
end
end
return
/*==================Einstellungen===================*/
einstell:
call showtx(0,"Bitte Warten!","Einstellungsfenster wird erstellt!",0,hbf.4)
call bildegui3()
if show('P','SHOWTX') then address 'SHOWTX' 'quit'
covaricyc=varicyc ; cotoncyc=toncyc ; coablo=ablo ; comogra=mogra
coprogs=progs ; coexpl=expl ; coexpd=expd
coxmv.1=gv ; coxmv.2=vv ; coxmv.3=kv ; coxmv.4=fv ; coxmv.5=dv
y=stemcopy('hgd',1,'cohgd',1)
y=stemcopy('std',1,'costd',1)
y=stemcopy('zsb',1,'cozsb',1)
y=stemcopy('tmv',1,'cotmv',1)
y=stemcopy('pmv',1,'copmv',1)
y=stemcopy('ont',1,'coont',1)
y=stemcopy('onp',1,'coonp',1)
y=stemcopy('tond',1,'cotond',1)
y=stemcopy('prod',1,'coprod',1)
ivx=1 ; ivt=1 ; ivp=1 ; blv2=0
do while ~eof(ca2)
call topipe2('tick 100')
ein=readln(ca2)
parse var ein ein1 ein2 ein3 ein4 ein5 ein6 .
parse var ein . . . ein7
if blv2>0 then do
blv2=blv2-1
if blv2=0 then do
bla2=bln2
call topipe2('bubble top 'bly2' left 'blx2' gt "'hilfe2.bln2'"')
end
end
if ein1='help' & hilfean=1 then call blase2(ein2)
if ein1='active' then call blase2(0)
if ein1='gadget' then call objekt3()
if ein1='menu' then call menue3()
if ein1='close' then leave
end
call close(ca2)
return
/*--------OBJEKT3--------*/
objekt3:
/*Hintergrund*/
do i=1 to hgd.0
if ein2=hdgg.i then do
cohgd.i=strip(strip(ein7),'B','"')
call topipe2('define bitmap fn "'cohgd.i'" part="0|0|'bigro'|'bigro'|0|0|0"')
call topipe2('id 'hbgg.i' ni 0')
end
if ein2=hsgg.i then do
costd.i=ein3
call topipe2('id 'hdgg.i' ref dis='costd.i)
call topipe2('id 'hbgg.i' ref dis='costd.i)
end
end
/*Fonts*/
do i=1 to zsb.0
if ein2=zsgg.i then
if ein3=1 then cozsb.i='gt="'ein4'" defn='ein5' s='ein6
else cozsb.i=""
end
/*Sound*/
do i=1 to ont.0
if ein2=ontgg.i then do
coont.i=ein3
u=~ein3
call topipe2('id 'sougg.i' ref dis='u)
call topipe2('id 'testtgg.i' ref dis='u)
end
if ein2=sougg.i then cotond.i=strip(strip(ein7),'B','"')
if ein2=testtgg.i then
if exists(cotond.i) then call soundplay(cotond.i)
end
/*Progstart*/
do i=1 to onp.0
if ein2=onpgg.i then do
coonp.i=ein3
u=~ein3
call topipe2('id 'startgg.i' ref dis='u)
call topipe2('id 'testpgg.i' ref dis='u)
end
if ein2=startgg.i then coprod.i=strip(strip(ein7),'B','"')
if ein2=testpgg.i then
if exists(coprod.i) then "run >nil: "coprod.i
end
/*Vorrausmeldung*/
if ein2=vmx1gg then do
ivx=ein3+1
call topipe2('id 'vmx2gg' s='coxmv.ivx)
end
if ein2=vmx2gg then coxmv.ivx=ein3
if ein2=vmt1gg then do
ivt=ein3+1
call topipe2('id 'vmt2gg' s='cotmv.ivt)
end
if ein2=vmt2gg then cotmv.ivt=ein3
if ein2=vmp1gg then do
ivp=ein3+1
call topipe2('id 'vmp2gg' s='copmv.ivp)
end
if ein2=vmp2gg then copmv.ivp=ein3
if ein2=spsgg then coprogs=ein3
/*Sonstige*/
if ein2=salgg then coablo=ein3
if ein2=sabgg then do
covaricyc=ein3
u=~covaricyc
if u then cotoncyc=0
call topipe2('id 'stbgg' ref dis='u)
end
if ein2=stbgg then cotoncyc=ein3
if ein2=smggg then comogra=ein3
/*Benutzen oder Speichern*/
if ein2=benugg | ein2=speigg then do
varicyc=covaricyc ; toncyc=cotoncyc ; ablo=coablo ; mogra=comogra
progs=coprogs ; expl=coexpl ; expd=coexpd
gv=coxmv.1 ; vv=coxmv.2 ; kv=coxmv.3 ; fv=coxmv.4 ; dv=coxmv.5
y=stemcopy('cohgd',1,'hgd',1)
y=stemcopy('costd',1,'std',1)
y=stemcopy('cozsb',1,'zsb',1)
y=stemcopy('cotmv',1,'tmv',1)
y=stemcopy('copmv',1,'pmv',1)
y=stemcopy('coont',1,'ont',1)
y=stemcopy('coonp',1,'onp',1)
y=stemcopy('cotond',1,'tond',1)
y=stemcopy('coprod',1,'prod',1)
do i=1 to 5
if std.i then hbf.i=""
else hbf.i='bf="'hgd.i'"'
end
if ein2=speigg then do
call open(9,'Daten/Einstellungen','W')
do i=1 to hgd.0
call writeln(9,hgd.i)
call writeln(9,std.i)
end
call writeln(9,1)
call writeln(9,1)
do i=1 to zsb.0
call writeln(9,zsb.i)
end
call writeln(9,'-')
call writeln(9,'-')
do i=1 to ont.0
call writeln(9,ont.i tond.i)
end
call writeln(9,'-')
call writeln(9,'-')
do i=1 to onp.0
call writeln(9,onp.i prod.i)
end
call writeln(9,'-')
call writeln(9,'-')
call writeln(9,'-')
call writeln(9,gv vv kv fv dv)
savez=tmv.1
do i=2 to tmv.0
savez=savez tmv.i
end
call writeln(9,savez)
savez=pmv.1
do i=2 to pmv.0
savez=savez pmv.i
end
call writeln(9,savez)
call writeln(9,progs)
call writeln(9,ablo)
call writeln(9,varicyc)
call writeln(9,toncyc)
call writeln(9,mogra)
call writeln(9,0)
call writeln(9,0)
call writeln(9,0)
call close(9)
end
end
return
/*--------- Menü3 -----------*/
menue3:
if ein2=0 then
select
when ein3=2 then call fensterpos(10,0,0,0)
when ein3=3 then ein1='close'
otherwise call fensterpos(10,1,0,ein3)
end
return
/*++++++ Sprechblasenhilfe+++++++ */
blase:
bln=arg(1)
if bln=-1 | symbol('hilfe.bln')='LIT' then bln=0
if bla=bln then return
if bla>0 then call topipe('bubble')
if bln>0 then do
bly=in3
blx=in4
blv=blaverz
end
else blv=0
return
blase2:
bln2=arg(1)
if bln2=-1 | symbol('hilfe2.bln2')='LIT' then bln2=0
if bla2=bln2 then return
if bla2>0 then call topipe2('bubble')
if bln2>0 then do
bly2=ein3
blx2=ein4
blv2=blaverz
end
else blv2=0
return
/*++++++++++Tonmeldung+++++++++++*/
tonmeldung:
do i=1 to 6
u=i+2
if varicyc then do
u2=0
if i<4 & gz=1 then u2=1
if i=4 & ez=1 then u2=1
if i>4 & fz=1 then u2=1
end
else u2=1
if u2 & symbol('tmeld.i')="VAR" & ont.u then do
call soundplay(tond.u)
call pause(1)
end
end
return
/*++++++++++Programmstart+++++++++++*/
programm:
do i=1 to 6
j=i+1
if onp.j & symbol('pmeld.i')="VAR" then
if exists(prod.j) & prod.j~="" then
"run >nil: "prod.j
end
return
/*++++++++++Tonabspielen+++++++++++*/
soundplay:
parse arg sout
call writeln(ca1,'define sound volume 64 fn "'sout'"')
parse value readln(ca1) with ok nsoundgg
if ok~='ok' then return
if soundgg~='' then call topipe('id 'soundgg' freesound')
soundgg=nsoundgg
call topipe('id 'soundgg' s 2 volume 64')
return
/* ***************** TOPIPE ******************** */
topipe:
parse arg out
call writeln(ca1,out)
res=readln(ca1)
parse var res res1 res2 .
if res1='ok' then return(res2)
call showtx(0,"TOPIPE-FEHLER"," In Zeile: "sigl"*nZeilentext: "sourceline(sigl)"*nZeilenwert: "out"*n Rückgabe: "res,1,hbf.4)
exit
topipeo:
parse arg out
call writeln(ca1,out)
return readln(ca1)
topipe2:
parse arg out
call writeln(ca2,out)
res=readln(ca2)
parse var res res1 res2 .
if res1='ok' then return(res2)
call showtx(0,"TOPIPE2-FEHLER"," In Zeile: "sigl"*nZeilentext: "sourceline(sigl)"*nZeilenwert: "out"*n Rückgabe: "res,1,hbf.4)
exit
topipe2o:
parse arg out
call writeln(ca2,out)
return readln(ca2)
topipe3:
parse arg out
call writeln(ca3,out)
res=readln(ca3)
parse var res res1 res2 .
if res1='ok' then return(res2)
call showtx(0,"TOPIPE3-FEHLER"," In Zeile: "sigl"*nZeilentext: "sourceline(sigl)"*nZeilenwert: "out"*n Rückgabe: "res,1,hbf.4)
exit
topipe4:
parse arg out
call writeln(ca4,out)
res=readln(ca4)
parse var res res1 res2 .
if res1='ok' then return(res2)
call showtx(0,"TOPIPE4-FEHLER"," In Zeile: "sigl"*nZeilentext: "sourceline(sigl)"*nZeilenwert: "out"*n Rückgabe: "res,1,hbf.4)
exit
pause:
call time('R')
do while time('E')<arg(1)
end
return
/* Funktion-DATUMD (Ermittelt deutsches Datum) */
/* Datum = datumd('Z|K|M|N|L|W|D'[,[Systage]|[Tag,Monat,Jahr]]) */
datumd:
procedure
l=arg()
if l<1 | l=3 | l>4 then return 17
arg f,t,m,j
te="Monday Tuesday Wednesday Thursday Friday Saturday Sunday"
td="Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag"
me="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
md="Januar Februar März April Mai Juni Juli August September Oktober November Dezember"
if l=1 then do
dn=date('N')
ds=date('S')
dw=date('W')
di=date('I')
end
else if l=2 then do
dn=date('N',t,'I')
ds=date('S',t,'I')
dw=date('W',t,'I')
di=date('I',t,'I')
end
else do
sd=j||m||t
dn=date('N',sd,'S')
ds=date('S',sd,'S')
dw=date('W',sd,'S')
di=date('I',sd,'S')
end
select
when f='Z' then dd=right(ds,2)"."substr(ds,5,2)"."left(ds,4)
when f='K' then do
mw=substr(dn,4,3)
mw=word(md,find(me,mw))
dd=left(dn,2)". "left(mw,3) right(dn,4)
end
when f='M' then do
mw=substr(dn,4,3)
mw=word(md,find(me,mw))
dd=left(word(td,find(te,dw)),2) left(dn,2)". "left(mw,3) right(dn,4)
end
when f='N' then do
mw=substr(dn,4,3)
mw=word(md,find(me,mw))
dd=left(dn,2)". "mw right(dn,4)
end
when f='W' then dd=word(td,find(te,dw))
when f='L' then do
mw=substr(dn,4,3)
mw=word(md,find(me,mw))
dd=word(td,find(te,dw))", "left(dn,2)". "mw right(dn,4)
end
when f='D' then dd=right(ds,2) substr(ds,5,2) left(ds,4) find(te,dw) di
otherwise dd=0
end
return dd
/* Funktion-ROUND (Rundet eine Zahl) */
/* gerundete Zahl = round(Zahl[,Stellen]) */
round:
procedure
if arg()<1 then return 0
if arg(2,'O')
then s=0
else s=arg(2)
z1=arg(1)
z2=trunc(z1,s)
g=z1-z2
if g>5/(10**(s+1)) then z2=z2+(1/10**s)
return z2
/* Funktion MOND */
/* Mondphase Richtung = mond(Datum,Zeit,Zeitzone) */
mond:
procedure
arg datum,zeit,gmt
tage=datum-date('I','19850101','S')+1
parse var zeit std':'min':'sek
std=std+gmt
if std>23 then do
tage=tage+1
std=std-24
end
if std<0 then do
tage=tage-1
std=std+24
end
tage=tage+((std+(min/60)+(sek/3600))/24)
phase1=prom(tage)
phase2=prom(tage+1)
if phase1<phase2
then zun=1
else zun=0
RETURN phase1 zun
/* Phasenberechnung ; Rückgabe = Prozent von Vollmond */
prom:
procedure
arg tage
ep=279.611371
rh=282.680403
se=0.01671542
lz=18.251907
pz=192.917585
nz=55.204723
n=p360(360*tage/365.24219878)
ms=p360(n+ep-rh)
ec=360/pi(1)*se*sin(deg(ms))
ls=p360(n+ec+ep)
i=p360(13.1763966*tage+lz)
mm=p360(i-0.1114041*tage-pz)
nm=p360(nz-0.0529539*tage)
ev=1.2739*sin(deg(2*(i-ls)-mm))
ac=0.1858*sin(deg(ms))
a3=0.37*sin(deg(ms))
mmp=mm+ev-ac-a3
ec=6.2886*sin(deg(mmp))
a4=0.214*sin(deg(2*mmp))
ip=i+ev+ec-ac+a4
v=0.6583*sin(deg(2*(ip-ls)))
idp=ip+v
d=idp-ls
proz=trunc(50*(1-cos(deg(d)))+0.005,2)
return proz
p360:
procedure
arg dg
dg=dg//360
if dg<0 then dg=dg+360
return dg
/*(Wochentag eines Datums, auch vor 1978)*/
wochentag:
procedure
parse arg d
parse var d t'.'m'.'j
wtd="Mo Di Mi Do Fr Sa So"
mot="31 28 31 30 31 30 31 31 30 31 30 31"
gtj=(j-1)*365+(j-1)%4
gtm=0
do i=1 to m-1
gtm=gtm+word(mot,i)
end
if j//4=0 & m>2 then gtm=gtm+1
ges=gtj+gtm+t
wt=(ges-2)//7+1
wtt=word(wtd,wt)
return wtt
sternzeichen:
procedure
parse arg xt,xm
if xm=01 & xt>19 | xm=02 & xt<19 then stern="Wassermann"
if xm=02 & xt>18 | xm=03 & xt<21 then stern="Fische"
if xm=03 & xt>20 | xm=04 & xt<20 then stern="Widder"
if xm=04 & xt>19 | xm=05 & xt<21 then stern="Stier"
if xm=05 & xt>20 | xm=06 & xt<22 then stern="Zwilling"
if xm=06 & xt>21 | xm=07 & xt<23 then stern="Krebs"
if xm=07 & xt>22 | xm=08 & xt<23 then stern="Löwe"
if xm=08 & xt>22 | xm=09 & xt<23 then stern="Jungfrau"
if xm=09 & xt>22 | xm=10 & xt<23 then stern="Waage"
if xm=10 & xt>22 | xm=11 & xt<22 then stern="Skorpion"
if xm=11 & xt>21 | xm=12 & xt<22 then stern="Schütze"
if xm=12 & xt>21 | xm=01 & xt<20 then stern="Steinbock"
return stern
/* ****************** HAUPT-GUI ********************* */
bildegui:
call open(ca1,"awnpipe:ku1/xc")
call topipe(' "BEKUNA - 'vers'" cg dg db si sg h state a 'winpos.1' m 'hbf.1)
fo1=topipe('textattr 'zsb.1)
fo2=topipe('textattr 'zsb.2)
fo3=topipe('textattr 'zsb.3)
fo4=topipe('textattr 'zsb.4)
call topipe('layout v si so')
call topipe('layout gt "Begrüßung" font='fo1' v si so')
call topipe('layout b 0 cj')
if ~exists('daten/smiley1') then do
call showtx(1500,"Fehler!","Das Bild «Smiley1» existiert nicht!",1,hbf.4)
exit
end
if ~exists('daten/smiley2') then do
call showtx(1500,"Fehler!","Das Bild «Smiley2» existiert nicht!",1,hbf.4)
exit
end
if froh then call topipe('bitmap fn="daten/smiley1"')
else call topipe('bitmap fn="daten/smiley2"')
smilgg=topipe('button b 4 ro ui weiw=0 weih=0')
if froh then hilfe.smilgg="Ich bin fröhlich!"
else hilfe.smilgg="Ich bin traurig!"
begrgg=topipe('button gt "'beg'" ro')
hilfe.begrgg="Hallo "ename", mit diesem Feld Begrüße ich Dich!"
call topipe('le')
if symbol('beg1')="VAR" then call topipe('button gt "'beg1'" ro')
if symbol('beg2')="VAR" then call topipe('button gt "'beg2'" ro')
call topipe('le')
nrw="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"
call topipe('layout gt "Ereignisse" font='fo2' v si so')
if gz=0 & ez=0 & fz=0 then meld1=keine
if meli1.0=0 & meli2.0=0 & meli3.0=0 then meld1=keined
if gz>0 then do
call topipe('layout b 0')
call topipe('button b 8 gt "G" ro weiw=0')
gzgg=topipe('button gt "'geb.1'" ro')
hilfe.gzgg="In diesem Feld Melde ich Dir*nGeburtstage und vergangene Ereignisse."
if gz>1 then do
if gz>20 then gz=20
cl=space(subword(nrw,1,gz),1,'|')
gcgg=topipe('chooser cl "'cl'" maxn=20 pu weiw=0')
hilfe.gcgg="Hier kannst Du die*nMeldungen durchblättern.*nBeim Betätigen wird das*nautomatische Blättern abgeschaltet."
end
call topipe('le')
end
if ez>0 then do
call topipe('layout b 0')
call topipe('button b 8 gt "E" ro weiw=0')
ezgg=topipe('button gt "'ereig.1'" ro')
hilfe.ezgg="In diesem Feld Melde ich Dir*nkommende Ereignisse."
if ez>1 then do
if ez>20 then ez=20
cl=space(subword(nrw,1,ez),1,'|')
ecgg=topipe('chooser cl "'cl'" maxn=20 pu weiw=0')
hilfe.ecgg="Hier kannst Du die*nMeldungen durchblättern.*nBeim Betätigen wird das*nautomatische Blättern abgeschaltet."
end
call topipe('le')
end
if fz>0 then do
call topipe('layout b 0')
call topipe('button b 8 gt "F" ro weiw=0')
fzgg=topipe('button gt "'feier.1'" ro')
hilfe.fzgg="In diesem Feld Melde ich Dir*nFeier-, Fest-*nund Gedenktage."
if fz>1 then do
if fz>20 then fz=20
cl=space(subword(nrw,1,fz),1,'|')
fcgg=topipe('chooser cl "'cl'" maxn=20 pu weiw=0')
hilfe.fcgg="Hier kannst Du die*nMeldungen durchblättern.*nBeim Betätigen wird das*nautomatische Blättern abgeschaltet."
end
call topipe('le')
end
if symbol('meld1')="VAR" then call topipe('button gt "'meld1'" ro')
if symbol('meld2')="VAR" then call topipe('button gt "'meld2'" ro')
if symbol('meld3')="VAR" then call topipe('button gt "'meld3'" ro')
if symbol('meld4')="VAR" then call topipe('button gt "'meld4'" ro')
call topipe('le')
call topipe('layout gt "Datum/Zeit" font='fo3' si so cj weih=0')
call topipe('space')
call topipe('label gt "Heute ist" ss=2 ua')
call topipe('button gt "'dat'" ro weiw=0 chl')
call topipe('space')
call topipe('label gt "Es ist jetzt" ss=2 ua')
call topipe('layout b 0 si weiw=0 weih=0 chl')
zeigg=topipe('button gt "'zei' Uhr" ro weiw=0')
call topipe('button gt "'som'" ro weiw=0')
call topipe('le')
call topipe('space')
call topipe('le')
call topipe('layout gt "Mond/Sterne" font='fo3' si so cj weih=0')
call topipe('space')
call topipe('label gt "Mond:" ss=2 ua')
if ~exists(mogdz) | ~exists(mogda) then do
call showtx(500,"Fehler!","Die Mondgrafik existiert nicht!",1,hbf.4)
mogra=0
end
if mogra then do
mopg=round(((brate-1)/100)*mop,0)
if ~exists(mogdz) | ~exists(mogda) then do
call showtx(500,"Fehler!","Die Mondgrafik existiert nicht!",1,hbf.4)
mogra=0
end
if mori then do
mobi=mopg*mogrb
call topipe('button fn "'mogdz'" ro weiw=0 weih=0 chl anim="'mobi'|0|'mogrb'|'mogrh'|0|0|0"')
end
else do
mobi=((brate-1)-mopg)*mogrb
call topipe('button fn "'mogda'" ro weiw=0 weih=0 chl anim="'mobi'|0|'mogrb'|'mogrh'|0|0|0"')
end
call topipe('button gt "'mop'%" ro weih=0 weiw=0')
call topipe('button gt "'zuab'" ro weih=0 weiw=0')
end
else do
call topipe('fuelgauge ticks=5 defn='mop' per minw=150 chl')
call topipe('button gt "'zuab'" ro weih=0')
end
call topipe('space')
call topipe('label gt "Sternbild:" ss=2 ua')
call topipe('button gt "'stern'" ro weih=0 chl')
call topipe('space')
call topipe('le')
call topipe('layout b 0 font='fo4' si so weih=0')
call topipe('layout b 0 si weiw=0 weih=0')
swkgg=topipe('button gt "_K" weiw=0')
hilfe.swkgg="Zeigt den Kalender."
swfgg=topipe('button gt "_F" weiw=0')
hilfe.swfgg="Zeigt die Feiertagsliste*nvon diesem Jahr ("xj")."
call topipe('le')
call topipe('layout b 0 si weiw=0 weih=0')
okgg=topipe('button gt " _Hab''s verstanden " c weiw=0')
hilfe.okgg='Hast Du alles Verstanden?*nDann klicke hier und*nBekuna wird beendet.'
call topipe('le')
call topipe('layout b 0 si weiw=0 weih=0')
swagg=topipe('button gt "_A" weiw=0')
hilfe.swagg="Anzeige der kommenden Ereignisse."
swegg=topipe('button gt "_E" weiw=0')
hilfe.swegg="Eingabe von kommenden Ereignissen."
call topipe('le')
call topipe('le')
call topipe('le')
/*Menüs Erstellen*/
me0=topipe('menu gt "Projekt|@LVorletzter Systemstart|@PEinstellungen|Fensterposition fixieren|Fensterposition freigeben|-|Über|@QBeenden"')
me1=topipe('menu gt "Daten anzeigen|@FFeiertage 'xj'|Feiertage 'xj+1'|@GGeburtstage|@VVergangene Ereignisse|@KKommende Ereignisse|@WWiederkehrende Ereignisse"')
me2=topipe('menu gt "Daten eingeben|Geburtstage|Vergangene Ereignisse|@EKommende Ereignisse|Wiederkehrende Ereignisse"')
call topipe('arexx gt "BEKUNA|front|quit"')
call topipe("open")
return
/* ****************** DATENEINGABE-GUI ********************* */
bildegui2:
call open(ca2,"awnpipe:ku2/xc")
efpos=arg(5)
parse value arg(2) with feld1'|'feld2'|'feld3'|'feld4
call topipe2(' "Dateneingabe" cg dg db si sg a nowindow 'winpos.efpos' m 'hbf.3)
fo5=topipe2('textattr 'zsb.5)
call topipe2('layout v si so')
call topipe2('layout gt "'arg(1)'" v si so')
bgg=topipe2('listbrowser lbl="'arg(2)'" font='fo5' v a st minh=80')
call topipe2('layout b 0 si weih=0')
ngg=topipe2('button gt "_Hinzufügen" weiw=0')
lgg=topipe2('button gt "_Entfernen" dis 1 weiw=0')
call topipe2('le')
call topipe2('button b=7 minh=2 weih=2')
call topipe2('label gt "'feld1':" ua')
vngg=topipe2('string chl lj dis 1')
call topipe2('label gt "'feld2':" ua')
if efpos>3 then do
call topipe2('layout chl bj b=0 weih=0')
dagg=topipe2('string lj dis 1')
kalgg=topipe2('button gt "K" dis 1 weiw=0')
call topipe2('le')
end
else dagg=topipe2('string chl lj dis 1 weih=0')
if efpos=11 then do
call topipe2('label gt "'feld3':" ua')
call topipe2('layout chl bj b=0 weih=0')
da2gg=topipe2('string lj dis 1')
kal2gg=topipe2('button gt "K" dis 1 weiw=0')
call topipe2('le')
call topipe2('label gt "'feld4':" ua')
intgg=topipe2('chooser cl "Ausgeschaltet|Jeder 2. Tag|Jeder 3. Tag|Jeder 4. Tag|Jeder 5. Tag|Jeder 6. Tag|Jede Woche|Jede 2. Woche|Jede 3. Woche|Jede 4. Woche|Jeden Monat|Jeder 2. Monat|Jeder 3. Monat|Jeder 6. Monat|Jedes Jahr" pu maxn 15 chl dis 1 s=6 weih=0')
end
call topipe2('le')
call topipe2('layout b 0 si weih=0')
spgg=topipe2('button gt "_Speichern" c weiw=0')
abgg=topipe2('button gt "_Abbrechen" c weiw=0')
call topipe2('le')
call topipe2('le')
me0=topipe2('menu gt "Fenster|@GGröße fixieren|@PGröße & Position fixieren|@FFreigeben|@QSchließen"')
offgg=topipe2("open")
z=0
do i=1 to arg(4)
a=value(arg(3)".i")
if ~(aw=2 & symbol('lzle.i')='VAR') then do
z=z+1
li.z=a
call topipe2('id 'bgg' gt "'a'" tar=-1 addn')
end
end
li.0=z
call topipe2('id 0 s 64')
return
/* ****************** EINSTELL-GUI ********************* */
bildegui3:
call open(ca2,"awnpipe:ku2/xc")
call topipe2(' "Einstellungen" cg dg db h state si sg a 'winpos.10' m 'hbf.5)
call topipe2('layout v si so')
pagegg=topipe2('clicktab ctl "Hintergrund|Zeichensatz|Tonmeldung|Programmstart|Verschiedenes"')
/*Hintergrund*/
call topipe2('layout b=0 v si so page='pagegg)
call topipe2('layout gt "Hintergrund" v si so')
ltx.1="Programmfenster"
ltx.2="Datenanzeigefenster"
ltx.3="Dateneingabefenster"
ltx.4="Meldungsfenster"
ltx.5="Dieses & Kalender"
do i=1 to 5
call topipe2('label gt "'ltx.i'" ss=2 ua')
call topipe2('layout b 0 si so cj chl')
hdgg.i=topipe2('getfile gt="Wähle ein Hintergrundmuster" fn="'hgd.i'" i minw=250 dis='std.i)
ggn=hdgg.i
hilfe2.ggn="Dateiauswahl für Hintergrundmuster"
hsgg.i=topipe2('checkbox gt "Standard" rj s='std.i)
ggn=hsgg.i
hilfe2.ggn="Bei Aktivierung, wird das*nStandard-Hintergrundmuster*nverwendet."
call topipe2('bitmap fn="'hgd.i'" part="0|0|'bigro'|'bigro'|0|0|0"')
hbgg.i=topipe2('button ro ui dis='std.i)
ggn=hbgg.i
hilfe2.ggn="Muster-Vorschau"
call topipe2('le')
end
call topipe2('le')
call topipe2('le')
/*Fonts*/
call topipe2('layout b=0 v si so page='pagegg)
call topipe2('layout gt "Fonts" v si so weih=0')
ltx.1="Begrüßungsfeld"
ltx.2="Ereignisfelder"
ltx.3="Datum/Zeit/Mond/Sterne"
ltx.4="Knöpfe im Hauptfenster"
ltx.5="Liste im Eingabefenster"
ltx.6="Liste im Ausgabefenster"
do i=1 to 6
call topipe2('label gt "'ltx.i':" ss=2 ua')
call topipe2('layout b 0 si weih=0 chl')
zsgg.i=topipe2('getfont style minn=8 maxn=24 high=250 chl')
ggn=zsgg.i
hilfe2.ggn="Zeichensatz-Auswahl"
parse var zsb.i . '"' a '"' . '=' b ' s=' c
af.i=a||'/'||b
ggn=topipe2('button gt "'af.i'" ro')
hilfe2.ggn="Zeigt den bereits*nbenutzten Zeichensatz."
call topipe2('le')
end
call topipe2('le')
call topipe2('le')
/*Sound*/
call topipe2('layout b=0 v si so page='pagegg)
call topipe2('layout gt "Sound" v si so weih=0')
ltx.1="Beim Öffnen"
ltx.2="Beim Schließen"
ltx.3="Eigener Geburtstag"
ltx.4="Anderer Geburtstag"
ltx.5="Vergangenes Ereignis"
ltx.6="Kommendes Ereignis"
ltx.7="Gesetzlicher Feiertag"
ltx.8="Sonstiger Feiertag"
do i=1 to 8
call topipe2('label gt "'ltx.i':" ss=2 ua')
call topipe2('layout b 0 weih=0 chl')
ontgg.i=topipe2('checkbox weiw=0 s='ont.i)
ggn=ontgg.i
hilfe2.ggn="Damit kann die Tonmeldung für ein Ereignis,*nEin- oder Ausgeschaltet werden."
u=~ont.i
sougg.i=topipe2('getfile fn="'tond.i'" dis='u)
ggn=sougg.i
hilfe2.ggn="Sounddatei-Auswahl"
testtgg.i=topipe2('button gt "Test" weiw=0 dis='u)
ggn=testtgg.i
hilfe2.ggn="Spielt den gewählten Sound ab."
call topipe2('le')
end
call topipe2('le')
call topipe2('le')
/*Programmstart*/
call topipe2('layout b=0 v si so page='pagegg)
call topipe2('layout gt "Programmstart" v si so weih=0')
ltx.1="Immer beim Schließen"
ltx.2="Eigener Geburtstag"
ltx.3="Anderer Geburtstag"
ltx.4="Vergangenes Ereignis"
ltx.5="Kommendes Ereignis"
ltx.6="Gesetzlicher Feiertag"
ltx.7="Sonstiger Feiertag"
do i=1 to 7
call topipe2('label gt "'ltx.i':" ss=2 ua')
call topipe2('layout b 0 weih=0 chl')
onpgg.i=topipe2('checkbox weiw=0 s='onp.i)
ggn=onpgg.i
hilfe2.ggn="Damit kann der Programmstart für ein Ereignis,*nEin- oder Ausgeschaltet werden."
u=~onp.i
startgg.i=topipe2('getfile fn="'prod.i'" dis='u)
ggn=startgg.i
hilfe2.ggn="Programm-Auswahl"
testpgg.i=topipe2('button gt "Test" weiw=0 dis='u)
ggn=testpgg.i
hilfe2.ggn="Startet das gewählte Programm."
call topipe2('le')
end
call topipe2('le')
call topipe2('le')
/*Sonstiges*/
call topipe2('layout b=0 v si so page='pagegg)
call topipe2('layout gt "Vorrausmeldungen" v si so weih=0')
call topipe2('label gt "Textmeldung im Vorraus:" ua')
call topipe2('layout b 0 si so chl weih=0')
vmx1gg=topipe2('chooser cl "Geburtstage|Vergangene Ereignisse|Kommende Ereignisse|Gesetzliche Feiertage|Sonstige Feiertage" pu')
hilfe2.vmx1gg="Ereignis-Auswahl*nfür Textmeldungen."
vmx2gg=topipe2('chooser cl "Nicht im Vorraus|1 Tag|2 Tage|3 Tage|4 Tage|5 Tage|6 Tage|1 Woche|2 Wochen|3 Wochen|1 Monat|2 Monate|3 Monate|6 Monate|1 Jahr" pu maxn=15 chl s='gv)
hilfe2.vmx2gg="Wähle hier den*nVorrausmeldezeitraum*nfür Textmeldungen."
call topipe2('le')
call topipe2('label gt "Tonmeldung im Vorraus:" ua')
call topipe2('layout b 0 si so chl weih=0')
vmt1gg=topipe2('chooser cl "Eigener Geburtstag|Anderer Geburtstag|Vergangenes Ereignis|Kommendes Ereignis|Gesetzlicher Feiertag|Sonstiger Feiertag" pu')
hilfe2.vmt1gg="Ereignis-Auswahl*nfür Tonmeldungen."
vmt2gg=topipe2('chooser cl "Nicht im Vorraus|Wie Textmeldung|1 Tag|2 Tage|3 Tage|4 Tage|5 Tage|6 Tage|1 Woche|2 Wochen|3 Wochen|1 Monat" pu chl s='tmv.1)
hilfe2.vmt2gg="Wähle hier den*nVorrausmeldezeitraum*nfür Tonmeldungen."
call topipe2('le')
call topipe2('label gt "Programmstart im Vorraus:" ua')
call topipe2('layout b 0 si so chl weih=0')
vmp1gg=topipe2('chooser cl "Eigener Geburtstag|Anderer Geburtstag|Vergangenes Ereignis|Kommendes Ereignis|Gesetzlicher Feiertag|Sonstiger Feiertag" pu')
hilfe2.vmp1gg="Ereignis-Auswahl*nfür Programmstart."
vmp2gg=topipe2('chooser cl "Nicht im Vorraus|1 Tag|2 Tage|3 Tage|4 Tage|5 Tage|6 Tage|7 Tage|8 Tage|9 Tage|10 Tage|11 Tage|12 Tage|13 Tage|14 Tage" pu chl maxn=15 s='pmv.1)
hilfe2.vmp2gg="Wähle hier, wie weit*nim Vorraus ein Programm*ngestartet werden soll."
call topipe2('le')
spsgg=topipe2('checkbox gt "Programmstart nur am eingestellten Tag" weiw=0 s='progs)
hilfe2.spsgg="Wähle hier, ob ein*nProgrammstart, nur am*neingestellten *noder jeden Tag,*nim Vorraus erfolgen soll."
call topipe2('le')
call topipe2('layout gt "Sonstiges" v si so weih=0')
salgg=topipe2('checkbox gt "Abgelaufene, kommende Ereignisse löschen" rj s='ablo)
hilfe2.salgg="Wähle hier, ob abgelaufene,*nkommende Ereignisse*ngelöscht werden sollen."
sabgg=topipe2('checkbox gt "Automatisch blättern" rj s='varicyc)
hilfe2.sabgg="Wenn mehrere Meldungen*nin einer Gruppe auftreten,*nkönnen diese automatisch*ndurchgeblättert werden."
u=~varicyc
stbgg=topipe2('checkbox gt "Tonmeldungen blättern" rj s='variton' dis='u)
hilfe2.stbgg="Beim automatischen Durchblättern,*nkann auch zu jeder Textmeldung*nein Sound abgespielt werden."
smggg=topipe2('checkbox gt "Mondgrafik benutzen" rj s='mogra)
hilfe2.smggg="Damit kann statt*nder Balkenanzeige,*neine Mondgrafik*nbenutzt werden."
call topipe2('le')
call topipe2('space')
call topipe2('le')
call topipe2('layout b 7 si so weih=0')
speigg=topipe2('button gt "_Speichern" c weiw=0')
benugg=topipe2('button gt "_Benutzen" c weiw=0')
call topipe2('button gt "_Abbrechen" c weiw=0')
call topipe2('le')
call topipe2('le')
me0=topipe2('menu gt "Fenster|@GGröße fixieren|@PGröße & Position fixieren|@FFreigeben|@QSchließen"')
call topipe2("open")
return
/*--------Datenliste-----------*/
listanz:
/*(Titel,Spaltentitel,Stemvar,Position,Nr,Hintergr)*/
afpos=arg(5)+5
call open(ca2,'awnpipe:ku2/xc')
call topipe2(' "Liste" defg 'arg(4)' m a nowindow so si 'arg(6))
fo6=topipe2('textattr 'zsb.6)
call topipe2('layout gt "'arg(1)'" si so minw=200 minh=200')
bdlgg=topipe2('listbrowser lbl="'arg(2)'" font='fo6' v a st')
call topipe2('le')
me0=topipe2('menu gt "Fenster|@GGröße fixieren|@PGröße & Position fixieren|@FFreigeben|@QSchließen"')
call topipe2('open')
do i=1 to value(arg(3)".0")
call topipe2('id 'bdlgg' gt "'value(arg(3)".i")'" tar=-1 addn')
end
call topipe2('id 0 s 64')
if show('P','SHOWTX') then address 'SHOWTX' 'quit'
do while ~eof(ca2)
call topipe2('con')
ein=readln(ca2)
parse var ein ein1 ein2 ein3 .
if ein1='menu' & ein2=0 then
select
when ein3=2 then call fensterpos(afpos,0,0,0)
when ein3=3 then ein1='close'
otherwise call fensterpos(afpos,1,0,ein3)
end
if ein1='close' then leave
end
call close(ca2)
return
/* --------KALENDER-GUI ---------- */
kalender:
if arg(2,'E') then do
kaldat=arg(2)
parse var kaldat kt'.'km'.'kj .
wtn1=word(datumd('D',01,km,kj),4)
end
else do
kaldat=datumd('Z')
parse var kaldat kt'.'km'.'kj .
wtn1=word(datumd('D',01,km,kj),4)
end
tage=word("31 28 31 30 31 30 31 31 30 31 30 31",km)
if km=2 then if kj//4=0 then tage=29
call open(ca3,"awnpipe:ku3/xc")
call topipe3(' "Kalender" defg si a cm m 'arg(5))
call topipe3('layout v si so')
call topipe3('layout b 0 si so')
jggk=topipe3('integer a minc 4 maxc 5 minn 1978 maxn 2099 defn 'kj' weiw 0')
mggk=topipe3('chooser cl "Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember" s 'km-1' pu weiw 0')
call topipe3('le')
call topipe3('layout b 0 si so')
do i=1 to 7
wtk=word("Mo Di Mi Do Fr Sa So",i)
call topipe3('button gt "'wtk'" ro')
end
call topipe3('le')
z1=0 ; z2=0
do j=1 to 6
call topipe3('layout b 0 si so')
do i=1 to 7
z2=z2+1
if i<wtn1 & j=1 | z1>=tage then tggk.z2=topipe3('button gt " " dis 1')
else do
z1=z1+1
if z1=1 then diff=z2-1
if kt=z1 then z3="ro s=1"
else z3=""
tggk.z2=topipe3('button gt "'z1'" pb 'z3)
end
end
call topipe3('le')
end
call topipe3('le')
call topipe3('open')
do while ~eof(ca3)
call topipe3('continue')
kin=readln(ca3)
parse var kin kin1 kin2 kin3 .
if kin1='gadget' then call objektk(arg(1),arg(3),arg(4))
if kin1='close' then leave
end
call close(ca3)
return kaldat
/*---ObjektK---*/
objektk:
/*Tagwahl*/
do i=1+diff to tage+diff
if kin2=tggk.i then do
ta=kt+diff
kt=right("0"i-diff,2)
call topipe3('id 'tggk.ta' s=0 ro=0')
call topipe3('id 'tggk.i' s=1 ro=1')
end
end
/*Monatswahl*/
if kin2=mggk then do
km=right("0"kin3+1,2)
call aktukal()
end
/*Jahreswahl*/
if kin2=jggk then do
kj=kin3
call aktukal()
end
if arg(1) then do
kaldat=kt'.'km'.'kj
call writeln(arg(2),'id 'arg(3)' gt "'kaldat'" ref')
y=readln(arg(2))
end
return
aktukal:
ta=kt+diff
call topipe3('id 'tggk.ta' s=0 ro=0')
wtn1=word(datumd('D',01,km,kj),4)
tage=word("31 28 31 30 31 30 31 31 30 31 30 31",km)
if km=2 then if kj//4=0 then tage=29
if kt>tage then kt=tage
z1=0 ; z2=0
do j=1 to 6
do i=1 to 7
z2=z2+1
if i<wtn1 & j=1 | z1>=tage then call topipe3('id 'tggk.z2' gt " " ref dis 1')
else do
z1=z1+1
if z1=1 then diff=z2-1
if kt=z1 then z3="ro=1 s=1"
else z3=""
call topipe3('id 'tggk.z2' gt "'z1'" ref dis 0 'z3)
end
end
end
return
/* --------- FEHLER ----------- */
syntax:
call errord(rc,sigl,sourceline(sigl),hbf.4)
exit
break_e:
call showtx(1000,"Abbruch","Das Programm wurde mit Ctrl-E unterbrochen!",1,hbf.4)
exit
halt:
call showtx(1000,"HALT","Das Programm hat einen HALT-Befehl empfangen!",1,hbf.4)
exit
error:
call showtx(1000,"FEHLER","Ein Externer Befehl hat einen Fehler gemeldet!",1,hbf.4)
exit
ioerr:
call showtx(1000,"FEHLER","Ein- Ausgabe- Fehler!",1,hbf.4)
exit